home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
676-700
/
681
/
term
/
source.lha
/
termGlobal.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-09
|
43KB
|
1,529 lines
/*
** $Id: termGlobal.h,v 1.10 92/05/08 20:49:55 olsen Sta Locker: olsen $
** $Revision: 1.10 $
** $Date: 92/05/08 20:49:55 $
**
** Global data definitions and function forward declarations
**
** Copyright © 1990-1992 by Olaf `Olsen' Barthel & MXM
** All Rights Reserved
*/
#include "xproto.h"
#include "xem.h"
/* Menu item codes. */
enum { MEN_OPEN=1,MEN_SAVE,MEN_SAVEAS,MEN_PRINTSCREEN,MEN_ICONIFY,MEN_ABOUT,MEN_QUIT,
MEN_SETCONSOLE,MEN_DOSCOMMAND,MEN_REXXCOMMAND,MEN_EDIT,MEN_PASTE,MEN_PACKET,MEN_FASTMACROPANEL,
MEN_CLEARBUFFER,MEN_DISPLAYBUFFER,MEN_CLOSEBUFFER,MEN_FREEZEBUFFER,MEN_LOADBUFFER,MEN_SAVEBUFFER,MEN_CAPTUREDISK,MEN_CAPTUREPRINTER,
MEN_UPLOADTEXT,MEN_DOWNLOADTEXT,MEN_SEND,MEN_RECEIVE,MEN_UPLOAD,MEN_DOWNLOAD,MEN_XFERPROTOCOL,MEN_SELECTXFER,
MEN_PHONEBOOK,MEN_DIAL,MEN_REDIAL,MEN_PLAY,MEN_SENDBREAK,MEN_FLUSHBUFFER,MEN_HANGUP,MEN_RELEASE,
MEN_CLEARSCREEN,MEN_RESETSTYLES,MEN_RESETFONT,MEN_RESETTERMINAL,MEN_SAVEILBM,MEN_SAVEASCII,
MEN_SERIAL,MEN_MODEM,MEN_TRANSFER,MEN_FASTMACROS,MEN_MACROS,MEN_SCREEN,MEN_TERMINAL,MEN_COMMANDS,MEN_EMULATION,MEN_PATH,MEN_MISC,MEN_HOTKEYS,MEN_SPEECH };
/* Serial settings. */
enum { PARITY_NONE,PARITY_EVEN,PARITY_ODD,PARITY_MARK,PARITY_SPACE };
enum { HANDSHAKING_XONXOFF,HANDSHAKING_RTSCTS,HANDSHAKING_NONE,HANDSHAKING_RTSCTS_DSR };
enum { DUPLEX_FULL,DUPLEX_HALF };
/* Terminal settings. */
enum { CR_IGNORE,CR_ASCR,CR_ASCRLF };
enum { LF_IGNORE,LF_ASLF,LF_ASLFCR };
enum { EMULATION_ANSIVT100,EMULATION_ATOMIC,EMULATION_TTY,EMULATION_EXTERNAL };
enum { COLOUR_AMIGA,COLOUR_EIGHT,COLOUR_SIXTEEN,COLOUR_MONO };
/* Protocol types. */
enum { PROTOCOL_XMODEM,PROTOCOL_XMODEMCRC,PROTOCOL_YMODEM,PROTOCOL_ZMODEM };
/* Font types. */
enum { FONT_TOPAZ,FONT_IBM };
/* Status types. */
enum { STATUS_READY,STATUS_HOLDING,STATUS_DIALING,STATUS_UPLOAD,
STATUS_DOWNLOAD,STATUS_BREAKING,STATUS_HANGUP };
/* Status line modes. */
enum { STATUSLINE_DISABLED,STATUSLINE_STANDARD,STATUSLINE_COMPRESSED };
/* Font scales. */
enum { SCALE_NORMAL,SCALE_HALF };
enum { SCALE_ATTR_NORMAL,SCALE_ATTR_TOP2X,SCALE_ATTR_BOT2X,SCALE_ATTR_2X };
/* Character tables. */
enum { TABLE_ASCII,TABLE_GFX };
/* Transfer types. */
enum { TRANSFER_BINARY,TRANSFER_TEXT,TRANSFER_ASCII };
/* Upload panel actions. */
enum { UPLOAD_TEXT=1,UPLOAD_BINARY,UPLOAD_IGNORE,UPLOAD_ABORT };
/* Day of week flags. */
#define DAY_MONDAY (1 << 0)
#define DAY_TUESDAY (1 << 1)
#define DAY_WEDNESDAY (1 << 2)
#define DAY_THURSDAY (1 << 3)
#define DAY_FRIDAY (1 << 4)
#define DAY_SATURDAY (1 << 5)
#define DAY_SUNDAY (1 << 6)
/* These signal masks will make life a bit easier. */
#define SIG_WINDOW (1 << Window -> UserPort -> mp_SigBit)
#define SIG_REXX (1 << TermRexxPort -> mp_SigBit)
#define SIG_SERIAL (1 << ReadPort -> mp_SigBit)
#define SIG_PACKET (1 << PacketWindow -> UserPort -> mp_SigBit)
#define SIG_TIMER (1 << TimePort -> mp_SigBit)
#define SIG_AUDIO (1 << AudioBlock -> ioa_Request . io_Message . mn_ReplyPort -> mp_SigBit)
#define SIG_REVIEW ((1 << ReviewPort -> mp_SigBit) | (1 << ReviewWindow -> UserPort -> mp_SigBit))
#define SIG_CLIP SIGBREAKF_CTRL_E
/* Some support macros for gadtools objects. */
#define GT_CHECKED(G) ((((struct Gadget *)(G)) -> Flags & GFLG_SELECTED) ? TRUE : FALSE)
#define GT_DISABLED(G) ((((struct Gadget *)(G)) -> Flags & GFLG_DISABLED) ? TRUE : FALSE)
#define GT_STRING(G) (((struct StringInfo *)(((struct Gadget *)(G)) -> SpecialInfo)) -> Buffer)
#define GT_INTEGER(G) (((struct StringInfo *)(((struct Gadget *)(G)) -> SpecialInfo)) -> LongInt)
/* Definitions to access the line signal setting functions supported by
* some IO serial boards (namely the ASDG board).
*/
#define SIOCMD_SETCTRLLINES (CMD_NONSTD + 7)
#define SIOB_RTSB 0
#define SIOB_DTRB 1
#define SIOB_RTSF (1 << SIOB_RTSB)
#define SIOB_DTRF (1 << SIOB_DTRB)
/* Kludge: this bit indicates that the shared serial access is enabled. */
#define SERIAL_SHARED 2
/* YAK (Yet Another Kludge): this bit indicates that a somewhat simpler
* and faster screen layout is to be used.
*/
#define TERMINAL_FASTER 2
/* Special character treatment. */
struct SpecialKey
{
UBYTE Key;
VOID (*Routine)();
};
/* Cursor backup data. */
struct CursorData
{
struct TextFont *CurrentFont;
WORD CursorX,
CursorY;
BYTE Charset;
BYTE CharMode[2];
BYTE Attributes;
BYTE FgPen,
BgPen;
UBYTE Style;
};
/* Global data link. */
struct TermPort
{
struct MsgPort ExecNode;
struct Window *TopWindow;
struct SignalSemaphore OpenSemaphore;
LONG ID,OpenCount,HoldIt;
LONG Reserved[5];
};
/* Support for optimized scrolling routines. */
struct ScrollLineInfo
{
UBYTE Left,Right;
UBYTE ColourMask;
UBYTE Shift;
};
/* A dial list entry. */
struct PhoneNode
{
struct Node VanillaNode;
UBYTE LocalName[50];
struct PhoneEntry *Entry;
};
/* A Fast! macro list entry. */
struct MacroNode
{
struct MacroNode *mn_Succ; /* Modeled after the default Node. */
struct MacroNode *mn_Pred;
WORD mn_Pad; /* Included only for Node compatibility. */
UBYTE *mn_Macro; /* = ln_Name, title */
UBYTE *mn_Code; /* The execution code. */
};
/* Speech preferences. */
struct SpeechConfig
{
WORD Rate;
WORD Pitch;
LONG Frequency;
BYTE Sex;
BYTE Volume;
BYTE Enabled;
BYTE Pad;
};
/* Macro Preferences. */
struct MacroKeys
{
UBYTE Keys[4][10][256];
};
/* term configuration. */
struct Configuration
{
/* Serial Preferences. */
ULONG BaudRate;
BYTE BitsPerChar;
BYTE Parity;
BYTE StopBits;
BYTE Handshaking;
BYTE Duplex;
BYTE HighSpeed;
ULONG BreakLength;
UBYTE SerialDevice[40];
LONG UnitNumber;
/* Modem Preferences. */
UBYTE ModemInit[80];
UBYTE ModemExit[80];
UBYTE ModemHangup[80];
UBYTE DialPrefix[80];
LONG RedialDelay;
LONG DialRetries;
LONG DialTimeout;
BYTE ConnectAutoCapture;
BYTE ConnectAutoBaud;
BYTE LogActions;
UBYTE NoCarrier[16];
UBYTE Connect[16];
UBYTE Voice[16];
UBYTE Ring[16];
UBYTE Busy[16];
/* Transfer Preferences. */
UBYTE Protocol[40];
/* Startup macro. */
UBYTE StartupMacro[256];
/* Macro Preferences. */
UBYTE MacroFile[256];
/* Screen Preferences. */
ULONG DisplayMode;
UWORD Colours[16];
BYTE MakeScreenPublic;
BYTE ShanghaiWindows;
/* Terminal Preferences. */
BYTE CaptureFilter;
BYTE DestructiveBackspace;
BYTE AudibleBell;
BYTE VisibleBell;
BYTE EightyColumns;
BYTE DisableBlinking;
BYTE SendCR;
BYTE SendLF;
BYTE ColourMode;
BYTE Emulation;
BYTE Font;
/* Emulation control. */
BYTE CursorApp;
BYTE FontScale;
BYTE JumpScroll;
BYTE AutoWrap;
BYTE CursorWrap;
BYTE NewLine;
BYTE InsertChar;
BYTE NumApp;
/* Path Preferences. */
UBYTE DefaultStorage[256];
UBYTE TextUploadPath[256];
UBYTE TextDownloadPath[256];
UBYTE ASCIIUploadPath[256];
UBYTE ASCIIDownloadPath[256];
UBYTE BinaryUploadPath[256];
UBYTE BinaryDownloadPath[256];
UBYTE CapturePath[256];
UBYTE LogFile[256];
UBYTE Editor[256];
UBYTE BeepSound[256];
/* Extension in version 1.9b */
BYTE SwapBSDelete;
BYTE StripBit8;
/* Some more extensions... */
BYTE RasterEnabled;
UBYTE EmulationName[256];
/* Up-/Download Macros. */
UBYTE UploadMacro[256];
UBYTE DownloadMacro[256];
/* Default fast! macro file. */
UBYTE FastMacroFile[256];
/* Program priority. */
BYTE Priority;
/* Override transfer path. */
BYTE OverridePath;
/* Backup config between switching to phone entries. */
BYTE BackupConfig;
/* ZModem auto upload panel enabled? */
BYTE AutoUpload;
/* No dialtone string. */
UBYTE NoDialTone[16];
/* Check carrier upon `CARRIER LOST' message. */
BYTE CheckCarrier;
/* Display the screen title bar? */
BYTE TitleBar;
/* Display the status lines? */
BYTE StatusLine;
BYTE DropDTR;
/* Custom keymap file name. */
UBYTE KeyMapName[40];
/* Serial buffer size. */
LONG SerBuffSize;
/* Maximum log book buffer size. */
LONG MaxLogBuffSize;
/* Is the buffering enabled? */
BYTE BufferEnabled;
/* Receive CR/LF as... */
BYTE ReceiveCR;
BYTE ReceiveLF;
/* Set `archived' bit on uploaded files. */
BYTE SetArchivedBit;
/* Open the fast! macro panel on startup? */
BYTE OpenFastMacroPanel;
/* Pass xON/xOFF through to modem? */
BYTE PassThrough;
/* Use system DisplayBeep()? */
BYTE SystemBeep;
BYTE Pad;
/* Answerback message. */
UBYTE AnswerBack[41];
BYTE Pad2;
};
/* term hotkey configuration. */
struct Hotkeys
{
UBYTE termScreenToFront[256];
UBYTE BufferScreenToFront[256];
UBYTE SkipDialEntry[256];
BYTE CommodityPriority;
BYTE HotkeysEnabled;
ULONG Reserved[25];
};
/* The TimeDate structure */
struct TimeDate
{
WORD PayPerUnit[2];
WORD SecPerUnit[2];
WORD TimeOfDay[2];
BYTE Month; /* Month of year or -1 -> Day = bitmapped days of week. */
BYTE Day; /* Day of month or -1 -> standard settings. */
UBYTE Comment[22]; /* Comment for this entry. */
};
struct TimeDateNode
{
struct Node VanillaNode; /* Default node entry. */
UBYTE Buffer[30]; /* Name buffer. */
struct TimeDate TimeDate; /* The TimeDate structure. */
};
/* A phonebook entry. */
struct PhoneEntry
{
struct PhoneNode *Node;
struct MinList TimeDateList;
LONG Count;
UBYTE Name[30];
UBYTE Number[40];
UBYTE Password[20];
UBYTE UserName[20];
LONG PayPerUnit[2];
LONG SecPerUnit[2];
LONG TimeOfDay[2];
struct Configuration Config;
};
/* Number of buffers to be used for buffered I/O. */
#define BUFFER_NUMBER 2
/* Auxiliary structure for buffered file I/O. */
struct Buffer
{
struct Message Message; /* Vanilla message header. */
BYTE Read; /* Last access has read data. */
BYTE Written; /* Last access has written data. */
LONG Action; /* Action to perform. */
LONG ActionData[2]; /* Seek and the like. */
LONG Result; /* Return value. */
BPTR FileHandle; /* Dos filehandle. */
UBYTE *Data; /* Data buffer. */
LONG BufLength; /* Length of data buffer. */
LONG BufPosition; /* Read/write pointer into buffer. */
LONG ReadBufFull; /* How many bytes are still to be read from the buffer? */
LONG WriteBufFull; /* How many bytes are still to be written to the buffer?*/
LONG RealPosition; /* Real position in file. */
LONG Cached; /* How many bytes in pre-load cache. */
UBYTE *DataBuffer[BUFFER_NUMBER]; /* The data buffers. */
LONG DataLength[BUFFER_NUMBER]; /* The lengths of the data buffers. */
WORD DataCount; /* Which buffer to use. */
BYTE WriteAccess; /* TRUE if a write file handle. */
BYTE LastActionFailed; /* TRUE if last action failed -> abort actions. */
struct Process *Child;
struct Process *Caller; /* Synchronization. */
BPTR DirLock;
struct InfoData __aligned InfoData;
BYTE Fresh; /* TRUE if no read/write access has taken place yet. */
};
/* Global data flow <-> term interface. */
struct FlowInfo
{
BYTE Changed;
BYTE NoCarrier;
BYTE ZModemUpload;
BYTE Connect;
BYTE Voice;
BYTE Ring;
BYTE Busy;
BYTE NoDialTone;
};
/* A scan sequence, somewhat similar to the FlowInfo
* structure.
*/
struct ScanNode
{
struct MinNode Node;
UBYTE *Sequence; /* Character sequence to be matched. */
LONG Count; /* Number of characters matched. */
};
/* xpr serial bits. */
#define ST_PARTYON (1 << 0)
#define ST_PARTYODD (1 << 1)
#define ST_7WIRE (1 << 2)
#define ST_QBREAK (1 << 3)
#define ST_RADBOOGIE (1 << 4)
#define ST_SHARED (1 << 5)
#define ST_EOFMODE (1 << 6)
#define ST_XDISABLED (1 << 7)
#define ST_PARTYMARKON (1 << 8)
#define ST_PARTYMARK (1 << 9)
#define ST_2BITS (1 << 10)
#define ST_READ7 (1 << 11)
#define ST_WRITE7 (1 << 12)
/* Miscellaneous definitions. */
#define MILLION 1000000
#define ATTR_UNDERLINE 1
#define ATTR_HIGHLIGHT 2
#define ATTR_BLINK 4
#define ATTR_INVERSE 8
/* Status macro (is character printable?). */
#define IsPrintable(c) (ValidTab[(c)])
#define IsControl(c) (((c) > 127 && (c) < 160) ? TRUE : FALSE)
/* Set the stopwatch pointer. */
#define SetWait(Window) SetPointer((Window),&Stopwatch[0],16,16,-6,0)
/* Audio channels. */
#define LEFT0F 1
#define RIGHT0F 2
#define RIGHT1F 4
#define LEFT1F 8
/* Program revision and the approriate info structure. */
struct TermInfo
{
UWORD Version;
UWORD Revision;
};
extern LONG TermVersion,
TermRevision;
extern UBYTE TermName[],
TermDate[];
/* Beep.c */
BYTE CreateBeep(VOID);
VOID DeleteBeep(VOID);
VOID ClearAudio(VOID);
VOID Beep(VOID);
BYTE OpenSound(UBYTE *Name);
/* CommandPanel.c */
VOID CommandPanel(struct Configuration *Config);
/* Console.c */
VOID __regargs CaptureToFile(APTR Buffer,LONG Size);
VOID __regargs Capture(APTR Buffer,LONG Size);
VOID ClosePrinterCapture(BYTE Force);
BYTE OpenPrinterCapture(BYTE Controller);
VOID PrintRegion(WORD Top,WORD Bottom);
BYTE __regargs HandleCursor(UBYTE Char);
VOID DoBackspace(VOID);
VOID DoSomeBeep(VOID);
VOID DoLF(VOID);
VOID DoIgnore(VOID);
VOID DoShiftIn(VOID);
VOID DoShiftOut(VOID);
VOID DoCR_LF(VOID);
VOID DoFF(VOID);
VOID DoLF_FF_VT(VOID);
VOID DoCR(VOID);
VOID DoTab(VOID);
VOID DoEnq(VOID);
VOID __regargs GfxText(struct RastPort *RPort,STRPTR Buffer,LONG Length);
VOID __regargs ConWrite(APTR Buffer,LONG Size);
VOID __regargs ConProcess(UBYTE *String,LONG Size);
VOID __stdargs ConWrites(UBYTE *String,...);
UBYTE __regargs KeyConvert(struct IntuiMessage *Massage,UBYTE *Buffer,LONG *Len);
/* CopyPanel.c */
VOID CopyPanel(struct Configuration *MyConfig);
/* DatePanel.c */
BYTE DatePanel(struct TimeDate *TimeDate);
/* DayPanel.c */
BYTE DayPanel(struct TimeDate *TimeDate);
/* DialPanel.c */
BYTE DialPanel(VOID);
/* FastMacros.c */
VOID RefreshFastWindow(WORD Height);
VOID CloseFastWindow(VOID);
BYTE OpenFastWindow(VOID);
struct MacroNode * NewFastMacro(UBYTE *Macro,UBYTE *Code);
VOID RemFastMacro(struct MacroNode *Node);
struct MacroNode * GetFastMacro(LONG Offset);
VOID ClearFastMacroList(struct List *List);
LONG GetFastMacroOffset(struct MacroNode *MacroNode);
VOID __regargs MoveList(struct List *From,struct List *To);
BYTE SaveFastMacros(UBYTE *Name);
BYTE LoadFastMacros(UBYTE *Name);
/* FastMacroPanel.c */
VOID FastMacroPanel(VOID);
/* FileBuffer.c */
LONG __stdargs BPrintf(struct Buffer *Buffer,UBYTE *Format,...);
BYTE __regargs BufferClose(struct Buffer *Buffer);
struct Buffer * __regargs BufferOpen(UBYTE *Name,UBYTE *AccessMode);
LONG __regargs BufferRead(struct Buffer *Buffer,UBYTE *Destination,LONG Size);
LONG __regargs BufferWrite(struct Buffer *Buffer,UBYTE *Source,LONG Size);
BYTE __regargs BufferSeek(struct Buffer *Buffer,LONG Offset,LONG Origin);
/* GadgetSupport.c */
VOID KeySelect(struct Gadget **GadgetList,WORD Last,UBYTE Key,struct Window *Window,struct Gadget **Gadget,ULONG *Class,ULONG *Code);
/* Identify.c */
VOID Identify(UBYTE *Name);
/* ImportPanel.c */
VOID ImportPanel(struct PhoneEntry *Entry,struct List *PhoneList);
/* LocaleSupport.c */
VOID __regargs LocaleOpen(STRPTR CatalogName,STRPTR BuiltIn,LONG Version);
VOID LocaleClose(VOID);
VOID LanguageCheck(VOID);
WORD __regargs GadToolsStrlen(STRPTR String);
WORD __regargs GadToolsLongestString(WORD From,WORD To);
STRPTR __regargs SmallCurrency(VOID);
STRPTR __regargs CreateSum(LONG Quantity,BYTE UseCurrency);
VOID __regargs LocalizeString(STRPTR *Strings,WORD From,WORD To);
VOID __regargs LocalizeMenu(struct NewMenu *Menu,WORD From);
STRPTR __regargs LocaleString(LONG ID);
/* Packet.c */
VOID ClearPacketHistory(VOID);
VOID __saveds __asm PacketKey(register __a0 struct Hook *Hook,register __a1 ULONG *Msg,register __a2 struct SGWork *Work);
BYTE HandlePacket(VOID);
VOID AddPacketHistory(UBYTE *Buffer);
VOID DeletePacketWindow(VOID);
BYTE CreatePacketWindow(VOID);
/* ParseCode.c */
VOID DoCancel(VOID);
VOID CSIFake(VOID);
BYTE __regargs ParseCode(UBYTE c);
/* ParseRoutines.c */
VOID ClearCursor(VOID);
VOID DrawCursor(VOID);
VOID SetCursor(VOID);
VOID __regargs ClipBlitCursor(UBYTE DoClip,UBYTE DoMove);
VOID BackupRender(VOID);
VOID __regargs ShiftChar(LONG Size);
VOID DownLine(VOID);
VOID ResetCursor(VOID);
UBYTE * Ignore(VOID);
UBYTE * __regargs ScrollUp(UBYTE *Buffer);
UBYTE * __regargs ScrollDown(UBYTE *Buffer);
UBYTE * CursorScrollDown(VOID);
UBYTE * CursorScrollUp(VOID);
UBYTE * NextLine(VOID);
UBYTE * SaveCursor(VOID);
UBYTE * __regargs FontStuff(UBYTE *);
UBYTE * LoadCursor(VOID);
UBYTE * __regargs ScaleFont(UBYTE *);
UBYTE * AlignmentTest(VOID);
UBYTE * SetTab(VOID);
UBYTE * __regargs RequestTerminal(UBYTE *Buffer);
UBYTE * Reset(VOID);
UBYTE * __regargs RequestInformation(UBYTE *Buffer);
UBYTE * __regargs SetSomething(UBYTE *Buffer);
UBYTE * __regargs PrinterController(UBYTE *Buffer);
UBYTE * __regargs NumericAppMode(UBYTE *Buffer);
UBYTE * __regargs MoveCursor(UBYTE *Buffer);
UBYTE * __regargs EraseLine(UBYTE *Buffer);
UBYTE * __regargs EraseScreen(UBYTE *Buffer);
UBYTE * __regargs EraseCharacters(UBYTE *Buffer);
UBYTE * __regargs InsertLine(UBYTE *Buffer);
UBYTE * __regargs ClearLine(UBYTE *Buffer);
UBYTE * __regargs SetTabs(UBYTE *Buffer);
UBYTE * __regargs SetAbsolutePosition(UBYTE *Buffer);
UBYTE * __regargs SetAttributes(UBYTE *Buffer);
UBYTE * __regargs SetRegion(UBYTE *Buffer);
VOID ResetCursor(VOID);
/* PathPanel.c */
BYTE PathPanel(struct Configuration *Config);
/* PasswordUserPanel.c */
VOID PasswordUserPanel(struct PhoneEntry *Entry);
/* SaveILBM. */
LONG SaveRPort(struct RastPort *RPort,struct ViewPort *VPort,LONG LeftEdge,LONG TopEdge,LONG Width,LONG Height,LONG ParentWidth,LONG ParentHeight,LONG Cookie,STRPTR Name);
/* Scale.c */
VOID DeleteScale(VOID);
BYTE CreateScale(VOID);
VOID __regargs PrintScaled(UBYTE *Buffer,LONG Size,UBYTE Scale);
/* Serial.c */
VOID XOn(VOID);
VOID __regargs SetFlags(struct IOExtSer *SomeRequest);
VOID __regargs SerialCommand(UBYTE *String);
VOID __regargs SerWrite(APTR Buffer,LONG Size);
VOID ClearSerial(VOID);
BYTE DropDTR(VOID);
VOID DeleteSerial(VOID);
UBYTE * CreateSerial(VOID);
/* SpeechPanel.c */
VOID SpeechPanel(VOID);
/* StringHook.c */
VOID __saveds ClipServer(VOID);
VOID __saveds __asm CommandKey(register __a0 struct Hook *Hook,register __a1 ULONG *Msg,register __a2 struct SGWork *Work);
/* termAux.c */
UBYTE * __regargs ExtractString(UBYTE *String,UBYTE *Destination,BYTE ReturnEnd);
VOID __regargs DeleteInterleavedBitMap(struct BitMap *SomeBitMap);
struct BitMap * __regargs CreateInterleavedBitMap(LONG Width,LONG Height,WORD Depth);
struct Node * GetListNode(LONG Offset,struct List *List);
struct ConUnit * GetConUnit(struct MsgPort *);
VOID AddDownloadObject(UBYTE *Line);
VOID ClearDownloadObjects(VOID);
struct ScanNode * SequenceFilter(UBYTE Char);
VOID AddSequenceObject(UBYTE *Sequence);
VOID ClearSequenceObjects(VOID);
VOID __stdargs LogAction(UBYTE *String,...);
VOID FlushMsg(struct Window *Window);
BYTE GetString(UBYTE *Prompt,UBYTE *Buffer);
VOID __regargs WakeUp(struct Window *Window,BYTE Activate);
VOID SendAmigaDOSCommand(UBYTE *Name);
VOID __saveds RexxBackgroundServer(VOID);
VOID SendARexxCommand(UBYTE *Name);
LONG ahtoi(UBYTE *String);
VOID __regargs BlockWindow(struct Window *Window);
VOID __regargs ReleaseWindow(struct Window *Window);
VOID BlockWindows(VOID);
VOID ReleaseWindows(VOID);
LONG LineRead(BPTR File,UBYTE *Buffer,LONG MaxChars);
VOID FlowInit(VOID);
VOID FlowFilter(UBYTE Char);
BYTE LoadMacros(UBYTE *Name,struct MacroKeys *Keys);
struct MenuItem * FindThisItem(ULONG MenuID);
LONG GetFileSize(UBYTE *Name);
struct FileRequester * GetFile(UBYTE *Title,UBYTE *Directory,UBYTE *Name,UBYTE *Buffer,UBYTE *Pattern,BYTE SaveFlag,BYTE MultiSelect,BYTE DirsOnly,UBYTE *OKText);
WORD __stdargs MyEasyRequest(struct Window *Window,UBYTE *Text,UBYTE *Gadgets,...);
VOID SelectTime(struct PhoneEntry *SomeEntry);
VOID __saveds StatusServer(VOID);
VOID CloseWindowSafely(struct Window *Window);
VOID WaitTime(LONG Secs,LONG Micros);
UBYTE * GetEnvDOS(UBYTE *Name,UBYTE *Buffer);
BYTE SetEnvDOS(UBYTE *Name,UBYTE *Value);
VOID BumpWindow(struct Window *SomeWindow);
VOID BumpDefault(VOID);
BYTE WriteIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
BYTE ReadIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
VOID PushWindow(struct Window *Window);
VOID PopWindow(VOID);
/* termBuffer.c */
VOID __saveds BufferServer(VOID);
VOID AddLine(UBYTE *Line,LONG Size);
VOID ClearBuffer(VOID);
VOID StoreBuffer(APTR Buffer,LONG Size);
/* termClip.c */
BYTE SaveClip(APTR Buffer,LONG Size);
LONG LoadClip(APTR Buffer,LONG Size);
/* termCrypt.c */
UBYTE * Encrypt(UBYTE *Source,WORD SourceLen,UBYTE *Destination,UBYTE *Key,WORD KeyLen,BYTE Prefill);
UBYTE * Decrypt(UBYTE *Source,WORD SourceLen,UBYTE *Destination,UBYTE *Key,WORD KeyLen,BYTE Prefill);
BYTE CryptPanel(UBYTE *Buffer);
/* termInfo.c */
BYTE ShowInfo(BYTE Ticks);
/* termInit.c */
struct Process * SegmentSplit(STRPTR Name,BYTE Pri,LONG StackSize,APTR Function);
VOID ConfigSetup(VOID);
BYTE DeleteDisplay(VOID);
UBYTE * CreateDisplay(BYTE FirstSetup);
VOID CloseAll(VOID);
UBYTE * OpenAll(STRPTR ConfigPath);
/* termHotkeys. */
VOID ShutdownCx(VOID);
BYTE SetupCx(VOID);
/* termMain.c */
LONG __saveds main(VOID);
VOID __saveds HandleInput(VOID);
BYTE HandleWindow(VOID);
BYTE HandleSerial(VOID);
VOID HandleCode(ULONG Code,ULONG Qualifier,struct MenuItem *MenuItem);
VOID HandleMenu(ULONG Code,ULONG Qualifier);
/* termPhone.c */
VOID RemoveDialEntry(LONG Entry);
VOID RemoveDialNode(struct PhoneNode *Node);
VOID SortToList(struct PhoneNode *PhoneNode);
VOID FreeDialList(VOID);
VOID SetPrefToDefaults(struct Configuration *Config,UBYTE *PathBuffer);
struct List * CreatePhoneList(VOID);
VOID DeletePhoneList(struct List *PhoneList);
VOID SortPhoneEntries(VOID);
VOID FreeTimeDateList(struct List *List);
VOID CopyTimeDateList(struct List *From,struct List *To,BYTE SkipFirst);
VOID AdaptTimeDateNode(struct TimeDateNode *Node);
struct TimeDateNode * CreateTimeDateNode(BYTE Month,BYTE Day,UBYTE *Comment);
VOID RemPhoneEntry(LONG Num);
BYTE NewPhoneEntry(VOID);
struct PhoneEntry ** CreatePhonebook(LONG Size,LONG *AllocSize,BYTE CreateEntries);
VOID DeletePhonebook(struct PhoneEntry **,LONG Size,BYTE FreeEntries);
BYTE SavePhonebook(UBYTE *Name);
BYTE LoadPhonebook(UBYTE *Name);
/* TerminalPanel.c */
VOID TerminalPanel(struct Configuration *Config);
/* SerialPanel.c */
BYTE SerialPanel(struct Configuration *Config);
/* ScreenPanel.c */
BYTE __regargs ModeOkay(ULONG ID);
BYTE ScreenPanel(struct Configuration *Config);
/* PhonePanel.c */
BYTE PhonePanel(VOID);
/* ModemPanel.c */
BYTE ModemPanel(struct Configuration *Config);
/* MacroPanel.c */
VOID MacroPanel(struct MacroKeys *MacroKeys);
/* termRaster.c */
VOID RasterClip(BYTE SingleChar,BYTE Xerox);
VOID DeleteRaster(VOID);
BYTE CreateRaster(VOID);
VOID __regargs RasterEraseScreen(BYTE Mode);
VOID __regargs RasterEraseLine(BYTE Mode);
VOID __regargs RasterEraseCharacters(WORD Chars);
VOID __regargs RasterClearLine(WORD Lines,WORD Top);
VOID __regargs RasterInsertLine(WORD Lines,WORD Top);
VOID __regargs RasterScrollRegion(WORD Direction,WORD RasterTop,WORD RasterBottom,WORD RasterLines);
VOID __regargs RasterShiftChar(WORD Size);
VOID __regargs RasterPutString(UBYTE *String,WORD Length);
/* termReview.c */
VOID DeleteReview(VOID);
BYTE CreateReview(VOID);
VOID UpdateReview(BYTE Force);
BYTE HandleReview(VOID);
/* termRexx.c */
BYTE SendRexxCommand(struct RexxHost *HostPort,STRPTR CommandString,STRPTR FileExtension,STRPTR HostName);
VOID FreeRexxCommand(struct RexxMsg *RexxMessage);
VOID ReplyRexxCommand(struct RexxMsg *RexxMessage,LONG Primary,LONG Secondary,STRPTR Result);
STRPTR GetToken(STRPTR String,LONG *StartChar,STRPTR AuxBuff,LONG MaxLength);
UBYTE * QueryBaud(VOID);
UBYTE * QueryDataBits(VOID);
UBYTE * QueryParity(VOID);
UBYTE * QueryStopBits(VOID);
UBYTE * QueryHandshaking(VOID);
UBYTE * QueryDuplex(VOID);
UBYTE * QueryHighspeed(VOID);
UBYTE * QueryBreakLength(VOID);
UBYTE * QuerySerialDevice(VOID);
UBYTE * QueryUnitNumber(VOID);
UBYTE * QueryModemInit(VOID);
UBYTE * QueryModemExit(VOID);
UBYTE * QueryDialPrefix(VOID);
UBYTE * QueryRedialDelay(VOID);
UBYTE * QueryDialRetries(VOID);
UBYTE * QueryDialTimeout(VOID);
UBYTE * QueryConnectAutoBaud(VOID);
UBYTE * QueryNoCarrier(VOID);
UBYTE * QueryConnect(VOID);
UBYTE * QueryError(VOID);
UBYTE * QueryVoice(VOID);
UBYTE * QueryRing(VOID);
UBYTE * QueryBusy(VOID);
UBYTE * QueryOkay(VOID);
UBYTE * QueryProtocol(VOID);
UBYTE * QueryProtocolOptions(VOID);
UBYTE * QueryMacroFile(VOID);
UBYTE * QueryDisplay(VOID);
UBYTE * QueryPublicScreen(VOID);
UBYTE * QueryShanghai(VOID);
UBYTE * QueryCaptureFilter(VOID);
UBYTE * QueryDSBackSpace(VOID);
UBYTE * QueryAudBell(VOID);
UBYTE * QueryVisBell(VOID);
UBYTE * QueryEightyColumns(VOID);
UBYTE * QuerySendCR(VOID);
UBYTE * QuerySendLF(VOID);
UBYTE * QueryColourMode(VOID);
UBYTE * QueryEmulation(VOID);
UBYTE * QueryFont(VOID);
UBYTE * QueryStatus(VOID);
UBYTE * QuerySerial(VOID);
UBYTE * QueryStartup(VOID);
UBYTE * QueryRequesters(VOID);
UBYTE * QueryTimeout(VOID);
UBYTE * QueryLine(VOID);
UBYTE * QueryLines(VOID);
UBYTE * QueryColumns(VOID);
UBYTE * QueryCursor(VOID);
UBYTE * QueryModemHangup(VOID);
UBYTE * QueryAutoCapture(VOID);
UBYTE * QueryLogActions(VOID);
UBYTE * QueryBlinking(VOID);
UBYTE * QueryCursorMode(VOID);
UBYTE * QueryFontScale(VOID);
UBYTE * QueryJumpScroll(VOID);
UBYTE * QueryCharacterWrap(VOID);
UBYTE * QueryCursorWrap(VOID);
UBYTE * QueryNewLine(VOID);
UBYTE * QueryInsert(VOID);
UBYTE * QueryNumeric(VOID);
UBYTE * QueryDefaultStore(VOID);
UBYTE * QueryTUploadPath(VOID);
UBYTE * QueryTDownloadPath(VOID);
UBYTE * QueryAUploadPath(VOID);
UBYTE * QueryADownloadPath(VOID);
UBYTE * QueryBUploadPath(VOID);
UBYTE * QueryBDownloadPath(VOID);
UBYTE * QueryCapturePath(VOID);
UBYTE * QueryLogFile(VOID);
UBYTE * QueryEditor(VOID);
UBYTE * QueryBeepSound(VOID);
UBYTE * QueryCaptureState(VOID);
UBYTE * QueryDownloads(VOID);
UBYTE * QueryScreenAddress(VOID);
UBYTE * QuerySpeechFile(VOID);
UBYTE * QuerySpeechRate(VOID);
UBYTE * QuerySpeechPitch(VOID);
UBYTE * QuerySpeechFrequency(VOID);
UBYTE * QuerySpeechVolume(VOID);
UBYTE * QuerySpeechSex(VOID);
UBYTE * QuerySpeech(VOID);
VOID RexxSetBaud(UBYTE *String);
VOID RexxSetDataBits(UBYTE *String);
VOID RexxSetParity(UBYTE *String);
VOID RexxSetStopBits(UBYTE *String);
VOID RexxSetHandshaking(UBYTE *String);
VOID RexxSetDuplex(UBYTE *String);
VOID RexxSetHighSpeed(UBYTE *String);
VOID RexxSetBreakLength(UBYTE *String);
VOID RexxSetSerialDevice(UBYTE *String);
VOID RexxSetUnitNumber(UBYTE *String);
VOID RexxSetModemInit(UBYTE *String);
VOID RexxSetModemExit(UBYTE *String);
VOID RexxSetDialPrefix(UBYTE *String);
VOID RexxSetRedialDelay(UBYTE *String);
VOID RexxSetDialRetries(UBYTE *String);
VOID RexxSetDialTimeout(UBYTE *String);
VOID RexxSetConnectAutoBaud(UBYTE *String);
VOID RexxSetNoCarrier(UBYTE *String);
VOID RexxSetConnect(UBYTE *String);
VOID RexxSetError(UBYTE *String);
VOID RexxSetVoice(UBYTE *String);
VOID RexxSetRing(UBYTE *String);
VOID RexxSetBusy(UBYTE *String);
VOID RexxSetOkay(UBYTE *String);
VOID RexxSetScreenMode(UBYTE *String);
VOID RexxSetFilter(UBYTE *String);
VOID RexxSetBackspace(UBYTE *String);
VOID RexxSetCR(UBYTE *String);
VOID RexxSetLF(UBYTE *String);
VOID RexxSet80Columns(UBYTE *String);
VOID RexxSetColourMode(UBYTE *String);
VOID RexxSetEmulation(UBYTE *String);
VOID RexxSetStartup(UBYTE *String);
VOID RexxSetFont(UBYTE *String);
VOID RexxSetProtocol(UBYTE *String);
VOID RexxSetProtocolOptions(UBYTE *String);
VOID RexxSetMacro(UBYTE *String);
VOID RexxSetColour(UBYTE *String);
VOID RexxSetScreen(UBYTE *String);
VOID RexxSetBell(UBYTE *String);
VOID RexxSetMacroFile(UBYTE *String);
VOID RexxSetRequesters(UBYTE *String);
VOID RexxSetTimeout(UBYTE *String);
VOID RexxSetSerial(UBYTE *String);
VOID RexxSetModemHangup(UBYTE *String);
VOID RexxSetAutoCapture(UBYTE *String);
VOID RexxSetLogActions(UBYTE *String);
VOID RexxSetBlinking(UBYTE *String);
VOID RexxSetCursorMode(UBYTE *String);
VOID RexxSetFontScale(UBYTE *String);
VOID RexxSetJumpScroll(UBYTE *String);
VOID RexxSetCharacterWrap(UBYTE *String);
VOID RexxSetCursorWrap(UBYTE *String);
VOID RexxSetNewLine(UBYTE *String);
VOID RexxSetInsert(UBYTE *String);
VOID RexxSetNumeric(UBYTE *String);
VOID RexxSetDefaultStore(UBYTE *String);
VOID RexxSetTUploadPath(UBYTE *String);
VOID RexxSetTDownloadPath(UBYTE *String);
VOID RexxSetAUploadPath(UBYTE *String);
VOID RexxSetADownloadPath(UBYTE *String);
VOID RexxSetBUploadPath(UBYTE *String);
VOID RexxSetBDownloadPath(UBYTE *String);
VOID RexxSetCapturePath(UBYTE *String);
VOID RexxSetLogFile(UBYTE *String);
VOID RexxSetEditor(UBYTE *String);
VOID RexxSetSpeechRate(UBYTE *String);
VOID RexxSetSpeechPitch(UBYTE *String);
VOID RexxSetSpeechFrequency(UBYTE *String);
VOID RexxSetSpeechVolume(UBYTE *String);
VOID RexxSetSpeechSex(UBYTE *String);
VOID RexxSetSpeech(UBYTE *String);
UBYTE * RexxBreak(VOID);
UBYTE * RexxTUpload(UBYTE *String);
UBYTE * RexxTDownload(UBYTE *String);
UBYTE * RexxBDownload(UBYTE *String);
UBYTE * RexxBUpload(UBYTE *String);
UBYTE * RexxWrite(UBYTE *String,UBYTE *String2);
UBYTE * RexxResetStyles(VOID);
UBYTE * RexxClearScreen(VOID);
UBYTE * RexxSaveILBM(UBYTE *String);
UBYTE * RexxHangUp(VOID);
UBYTE * RexxGetString(UBYTE *String);
UBYTE * RexxCommand(UBYTE *String,UBYTE *String2);
UBYTE * RexxMessage(UBYTE *String,UBYTE *String2);
UBYTE * RexxPutClip(UBYTE *String,UBYTE *String2);
UBYTE * RexxGetClip(VOID);
UBYTE * RexxDelay(UBYTE *String);
UBYTE * RexxDial(UBYTE *String);
UBYTE * RexxInput(UBYTE *String);
UBYTE * RexxPrinter(UBYTE *String);
UBYTE * RexxMacros(UBYTE *String);
UBYTE * RexxSpeech(UBYTE *String);
UBYTE * RexxConfig(UBYTE *String);
UBYTE * RexxPhone(UBYTE *String);
UBYTE * RexxCapture(UBYTE *String);
UBYTE * RexxBuffer(UBYTE *String);
UBYTE * RexxFirstDownload(VOID);
UBYTE * RexxNextDownload(VOID);
UBYTE * RexxLastDownload(VOID);
UBYTE * RexxWaitString(UBYTE *String);
UBYTE * RexxToneDial(UBYTE *String);
UBYTE * RexxSimpleRequest(UBYTE *String);
UBYTE * RexxTwoGadRequest(UBYTE *String);
UBYTE * RexxFileRequest(UBYTE *String);
UBYTE * RexxSpeak(UBYTE *String);
VOID QuietExit(VOID);
VOID Rexx2Front(VOID);
VOID Term2Front(VOID);
VOID Display2Front(VOID);
VOID CloseDisplay(VOID);
BYTE RexxASyncCommand(struct RexxMsg *RexxMsg,UBYTE *Arg1,UBYTE *Arg2);
VOID RexxSyncCommand(struct RexxMsg *RexxMsg,UBYTE *Arg1,UBYTE *Arg2);
VOID __saveds RexxServer(VOID);
VOID HandleRexx(VOID);
/* termScroll.c */
VOID __regargs ScrollLineRectFill(struct RastPort *RPort,WORD MinX,WORD MinY,WORD MaxX,WORD MaxY);
VOID __regargs ScrollLineRaster(struct RastPort *RPort,WORD DeltaX,WORD DeltaY,WORD MinX,WORD MinY,WORD MaxX,WORD MaxY);
VOID __regargs ScrollLineEraseScreen(BYTE Mode);
VOID __regargs ScrollLineEraseLine(BYTE Mode);
VOID __regargs ScrollLineEraseCharacters(WORD Chars);
VOID __regargs ScrollLineShiftChar(WORD Size);
VOID __regargs ScrollLinePutString(WORD Length);
/* termSpeech. */
VOID DeleteSpeech(VOID);
BYTE CreateSpeech(VOID);
VOID Say(UBYTE *String,...);
VOID SpeechSetup(VOID);
/* termTransfer.c */
VOID SendTextFile(UBYTE *TheFile);
VOID StartXprReceive(BYTE Type);
BYTE StartXprSend(BYTE Type);
BYTE ASCIISetup(VOID);
VOID ASCIIShutdown(VOID);
/* termXEM.c */
VOID CloseEmulator(VOID);
BYTE OpenEmulator(UBYTE *Name);
VOID SetupXEM_MacroKeys(struct MacroKeys *Keys);
/* termXPR.c */
LONG __saveds __asm xpr_fopen(register __a0 UBYTE *FileName,register __a1 UBYTE *AccessMode);
LONG __saveds __asm xpr_fclose(register __a0 struct Buffer *File);
LONG __saveds __asm xpr_fread(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
LONG __saveds __asm xpr_fwrite(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
ULONG __saveds __asm xpr_sread(register __a0 UBYTE *Buffer,register __d0 ULONG Size,register __d1 LONG Timeout);
LONG __saveds __asm xpr_swrite(register __a0 UBYTE *Buffer,register __d0 LONG Size);
LONG __saveds xpr_sflush(VOID);
LONG __saveds __asm xpr_update(register __a0 struct XPR_UPDATE *UpdateInfo);
LONG __saveds xpr_chkabort(VOID);
LONG __saveds __asm xpr_gets(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
LONG __saveds __asm xpr_setserial(register __d0 LONG Status);
LONG __saveds __asm xpr_ffirst(register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
LONG __saveds __asm xpr_fnext(register __d0 LONG OldState,register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
LONG __saveds __asm xpr_finfo(register __a0 UBYTE *FileName,register __d0 LONG InfoType);
LONG __saveds __asm xpr_fseek(register __a0 struct Buffer *File,register __d0 LONG Offset,register __d1 LONG Origin);
ULONG __saveds __asm xpr_options(register __d0 LONG NumOpts,register __a0 struct xpr_option **Opts);
LONG __saveds __asm xpr_unlink(register __a0 UBYTE *FileName);
LONG __saveds xpr_squery(VOID);
LONG __saveds __asm xpr_getptr(register __d0 LONG InfoType);
LONG __saveds __asm xpr_stealopts(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
struct Gadget * CreateAllGetsGadgets(BYTE LoadGadget,UBYTE *String,UBYTE *Prompt,LONG *WindowWidth,struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge,struct Screen *Screen);
BYTE ProtocolSetup(VOID);
VOID SaveProtocolOpts(VOID);
BYTE SelectProtocol(UBYTE *Name,struct Window *ParentWindow);
/* ToneDial.c */
VOID DeleteTone(VOID);
BYTE ToneDial(UBYTE *Number);
/* TransferPanel.c */
VOID __stdargs TransferInfo(WORD X,WORD Y,BYTE *String,...);
VOID __stdargs ShowString(struct Gadget *Gadget,UBYTE *String,...);
VOID GhostStats(struct Gadget *Gadget);
VOID ShowStats(struct Gadget *Gadget,LONG Value,LONG Max);
VOID __stdargs AddTransferInfo(UBYTE *Message,...);
VOID RefreshTransferWindow(VOID);
BYTE TransferPanel(UBYTE *Title);
VOID DeleteTransferPanel(VOID);
/* RatePanel.c */
VOID RatePanel(struct List *PhoneList,struct PhoneEntry *Entry);
/* UploadPanel.c */
BYTE UploadPanel(VOID);
/* Format.asm */
VOID __stdargs SPrintf(APTR,UBYTE *,...);
VOID __stdargs VSPrintf(APTR,UBYTE *,va_list);
/* termData.c */
extern struct ExecBase *SysBase;
extern struct DosLibrary *DOSBase;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct Library *GadToolsBase;
extern struct Library *DiskfontBase;
extern struct Library *UtilityBase;
extern struct Device *TimerBase;
extern struct Library *AslBase;
extern struct RxsLib *RexxSysBase;
extern struct Library *IFFParseBase;
extern struct Library *CxBase;
extern struct Library *LayersBase;
extern struct Library *IconBase;
extern struct Library *WorkbenchBase;
extern struct Library *XEmulatorBase;
extern struct timerequest *TimeRequest;
extern struct MsgPort *TimePort;
extern struct IOStdReq *ConsoleRequest;
extern struct Device *ConsoleDevice;
extern struct KeyMap *KeyMap;
extern BPTR KeySegment;
extern struct Screen *Screen;
extern struct Window *Window;
extern struct Window *StatusWindow;
extern UWORD StatusOffset;
extern APTR OldWindowPtr;
extern struct BitMap *InterleavedBitMap;
extern struct Requester *RequesterList;
extern struct ViewPort *VPort;
extern struct RastPort *RPort;
extern struct TextFont *Topaz,*IBM,*GFX,*CurrentFont;
extern APTR VisualInfo;
extern UWORD ANSIPens[NUMDRIPENS + 1];
extern UWORD EGAPens[NUMDRIPENS + 1];
extern UWORD AtomicColours[16];
extern UWORD EGAColours[16];
extern UWORD ANSIColours[16];
extern UWORD DefaultColours[16];
extern UWORD BlinkColours[16];
extern UWORD StandardColours[16];
extern struct Process *ThisProcess;
extern struct Process *RexxProcess;
extern struct MsgPort *TermRexxPort;
extern struct Process *StatusProcess;
extern struct Process *BufferProcess;
extern struct WBStartup *WBenchMsg;
extern struct InputEvent *FakeInputEvent;
extern struct IOExtSer *ReadRequest;
extern struct IOExtSer *WriteRequest;
extern struct MsgPort *ReadPort;
extern APTR ReadBuffer,
HostReadBuffer;
extern UBYTE *SerialMessage;
extern struct Hotkeys Hotkeys;
extern struct NewBroker NewTermBroker;
extern struct TextAttr DefaultFont;
extern struct TextAttr IBMFont;
extern struct TextAttr GFXFont;
extern UBYTE AnyChannel[4];
extern UBYTE __chip SineWave[8];
extern struct IOAudio *AudioBlock;
extern UWORD __chip Stopwatch[(2 + 16) * 2];
extern BYTE ValidTab[256];
extern UBYTE IBMConversion[256];
extern BYTE GfxTable[256];
extern struct SpecialKey SpecialKeys[11];
extern UBYTE SpecialMap[256];
extern UBYTE SharedBuffer[512];
extern struct NewMenu TermMenu[];
extern struct Menu *Menu;
extern struct TermPort *TermPort;
extern struct Configuration Config;
extern struct Configuration PrivateConfig;
extern struct SpeechConfig SpeechConfig;
extern BYTE English;
extern BYTE Status;
extern BYTE Online;
extern struct Configuration *BackupConfig;
extern UWORD PublicModes;
extern UBYTE LastConfig[256];
extern UBYTE DefaultPubScreen[MAXPUBSCREENNAME];
extern ULONG ModeID[16];
extern struct Buffer *FileCapture;
extern BPTR PrinterCapture;
extern UBYTE CaptureName[256];
extern BYTE StandardPrinterCapture,
ControllerActive;
extern UBYTE **BufferLines;
extern LONG Lines;
extern struct SignalSemaphore *BufferSemaphore;
extern LONG MaxLines;
extern LONG BufferSpace;
extern BYTE BufferClosed;
extern BYTE BufferFrozen;
extern struct PhoneEntry **Phonebook;
extern LONG PhoneSize;
extern LONG NumPhoneEntries;
extern UBYTE PhonePassword[256];
extern BYTE PhonePasswordUsed;
extern UBYTE LastPhone[256];
extern UBYTE LastKeys[256];
extern UBYTE LastMacros[256];
extern UBYTE LastSpeech[256];
extern struct MacroKeys *MacroKeys;
extern UBYTE *StripBuffer;
extern UWORD LastLine,LastColumn,LastPixel;
extern BYTE Charset,Attributes,FgPen,BgPen;
extern WORD CursorX,CursorY,Top,Bottom;
extern BYTE UseRegion,RegionSet,InSequence,Quiet,Blocking;
extern BYTE TabStops[1024];
extern BYTE CharMode[2];
extern BYTE ResetDisplay,Escape;
extern UBYTE *AttentionBuffers[8],AttentionCount[8],FlowCount;
extern BYTE BaudPending,FullCheck;
extern UBYTE BaudBuffer[20],BaudCount;
extern struct FlowInfo FlowInfo;
extern LONG FileCount,FileCountMax;
extern struct WBArg *FileArg;
extern BYTE MultipleFiles,FileMatch,BinaryTransfer;
extern struct AnchorPath *FileAnchor;
extern LONG TransferBits;
extern struct Window *TransferWindow;
extern struct Menu *TransferMenu;
extern struct Gadget *TransferGadgetArray[8];
extern struct List TransferInfoList;
extern UBYTE *DownloadPath;
extern BYTE Uploading;
extern BYTE DidTransfer;
extern struct Library *XProtocolBase;
extern struct XPR_IO *XprIO;
extern UBYTE ProtocolOptsBuffer[256];
extern BYTE NewLibrary,NewOptions;
extern UBYTE LastXprLibrary[256];
extern UBYTE ConvNumber[30],ConvNumber10[30];
extern BYTE UsesZModem,SendAbort,TransferAborted;
extern UBYTE ZModemCancel[20];
extern LONG CurrentPay;
extern LONG PayPerUnit[2];
extern LONG SecPerUnit[2];
extern LONG TimeOfDay[2];
extern WORD PreferredTime;
extern UBYTE Password[20];
extern UBYTE UserName[20];
extern struct PhoneEntry *ChosenEntry;
extern BYTE ChosenInUse;
extern UBYTE WindowName[256];
extern BYTE WeAreBlocking;
extern struct List *DialList;
extern BYTE SendStartup;
extern BYTE ReleaseSerial;
extern BYTE ResetSerial;
extern BYTE BatchMode;
extern BYTE SerialSet;
extern UBYTE LastDownload[256];
extern UBYTE LastUpload[256];
extern struct Hook CommandHook;
extern BYTE DontActivate;
extern UBYTE CommandWorkBuffer[256];
extern struct StringExtend CommandExtend;
extern struct Window *CommandWindow;
extern struct Gadget *CommandGadget;
extern struct Gadget *ActiveGadget;
extern struct Process *ClipProcess;
extern struct MsgPort *ClipPort;
extern struct Window *PacketWindow;
extern struct Gadget *PacketGadgetArray[2];
extern struct Menu *PacketMenu;
extern struct Gadget *PacketGadgetList;
extern struct List PacketHistoryList;
extern struct NewMenu GetsMenu[];
extern BYTE Initializing,LoadColours;
extern UBYTE *Raster,*RasterAttr;
extern WORD RasterWidth,RasterHeight;
extern struct SignalSemaphore *DownloadSemaphore;
extern struct List DownloadList;
extern LONG DownloadLineCount;
extern struct Node *DownloadNode;
extern struct List SequenceList;
extern LONG SequenceCount;
extern ULONG VersionProps[2];
extern BYTE ExitQuietly;
extern struct Window *RexxWindow;
extern struct Window *TopWindow;
extern struct Window *WindowStack[5];
extern WORD WindowStackPtr;
extern LONG TermID;
extern UBYTE TermIDString[];
extern struct List FastMacroList;
extern LONG FastMacroCount;
extern UBYTE LastFastMacros[256];
extern struct Window *FastWindow;
extern struct Gadget *FastGadget;
extern struct List DoubleBufferList;
extern struct SignalSemaphore DoubleBufferSemaphore;
extern struct XEM_IO *XEM_IO;
extern ULONG XEM_Signal;
extern struct XEmulatorHostData XEM_HostData;
extern UBYTE *OptionTitle;
extern struct List XEM_MacroList;
extern struct XEmulatorMacroKey *XEM_MacroKeys;
extern UBYTE EmulationName[40];
extern struct List EmptyList;
extern UBYTE ScrollLineFirst,ScrollLineLast,
ScrollLineCount;
extern struct ScrollLineInfo *ScrollLines;
extern struct MsgPort *ReviewPort;
extern struct Window *ReviewWindow;